﻿#region << 文件说明 >>

/*----------------------------------------------------------------
 * 命名空间：Vampirewal.BlogCore.Controls.label
 * 唯一标识：b6895640-a3b2-4b88-b158-c0cfdc413267
 * 文件名：Icon
 *
 * 创建者：杨程
 * 电子邮箱：235160615@qq.com
 * 创建时间：2024/6/26 13:38:08
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/

#endregion << 文件说明 >>

namespace Vampirewal.BlogCore;

/// <summary>
/// Icon图标
/// </summary>
public sealed class Icon : ControlBase
{
    /// <summary>
    /// 构造函数
    /// </summary>
    internal Icon()
    {
    }

    public override string Id { get; set; }

    public override string ConverToHtml()
    {
        StringBuilder sb = new StringBuilder();

        sb.AppendLine($"<el-icon size=\"{Size}\" color=\"{Color}\">");
        sb.AppendLine(Title);
        sb.AppendLine($"</el-icon>");

        return sb.ToString();
    }

    public override string Title { get; set; }

    /// <summary>
    /// 颜色
    /// </summary>
    internal string Color { get; set; }

    /// <summary>
    /// 尺寸
    /// </summary>
    internal int Size { get; set; }
}

public static partial class App
{
    /// <summary>
    /// icon图标
    /// <para>点击下方连接可查看可使用的icon，复制之后只需要中间的icon名称，不需要前后的el-icon</para>
    /// <para>http://element-plus.org/zh-CN/component/icon.html#%E7%9B%B4%E6%8E%A5%E4%BD%BF%E7%94%A8-svg-%E5%9B%BE%E6%A0%87</para>
    /// </summary>
    /// <param name="title">类型</param>
    /// <param name="color">颜色</param>
    /// <param name="size">尺寸</param>
    /// <returns></returns>
    public static Icon CreateIcon(string title,string color= "#409efc", int size=20)
    {
        if (string.IsNullOrEmpty(title)) throw new Exception("icon不能为空");

        return new Icon() 
        { 
            Title = title,
            Id = GenerateId(),
            Color = color,
            Size = size
        };
    }
}